package top.infopub.mgr.hr.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.github.pagehelper.Page;

import top.infopub.generic.GenericDao;
import top.infopub.mgr.hr.vo.DeptInfoVo;
import top.infopub.model.hr.DeptInfo;

/** 部门信息(HR_DEPT_INFO) **/
public interface DeptInfoDao extends GenericDao<DeptInfo, String> {

    /**
     * 批量插入部门记录
     * @param postInfos
     * @see
     */
    void insertByBatch(@Param("list")List<DeptInfo> deptInfos);

    /**
     * 根据公司id删除部门记录
     * @param orgId
     * @see
     */
    void deleteByOrgId(String orgId);

    /**
     * 根据条件查询部门记录
     * @param deptInfoVo
     * @return
     * @see
     */
    Page<DeptInfoVo> selectByDomainWhere(DeptInfoVo deptInfoVo);

    /**
     * 新增部门（自带id）
     * @param deptInfoVo
     * @see
     */
    void insertById(DeptInfo deptInfo);

    /**
     * 根据公司id查询（一级、二级）部门
     * @param orgId 公司Id
     * @return
     * @see
     */
    List<DeptInfo> selectByOrgId(String orgId);

    /**
     * 根据公司id查询全部部门
     * @param orgId 公司Id
     * @return
     * @see
     */
    List<DeptInfo> selectAllByOrgId(String orgId);

    /**
     * 根据名称和id查询部门是否存在
     * @param deptName 部门名称
     * @param id 主键id
     * @param orgId 公司id
     * @return
     * @see
     */
    List<DeptInfo> selectByDeptNameAndId(@Param("deptName")String deptName, @Param("id")String id, @Param("orgId")String orgId);

}
